package br.com.affero.testewel.model.document;

import java.util.List;

/**
 * Interface para os serviços de persitência para documentos.
 * 
 * @author Welington veiga
 * @since 20/12/2011
 * @version 1.0.0
 */
public interface DocumentDAO {
	
	/**
	 * Persistir Documento.
	 *  
	 * @param document
	 */
	public void persist(Document document);
	
	/**
	 *  Obter todos os documentos cadastrados no sistema.
	 *  
	 * @return lista de documentos
	 */
	public List<Document> listAll();

	/**
	 * Obter um Document conhecido segundo seu identificador
	 * 
	 * @param id identificador do Documento desejado
	 * @return instância desejado, caso exista, null caso contrário
	 */
	public Document findOneById(Long id);

	/**
	 * Método que deleta um Document
	 * @param document documento apagado
	 */
	public void delete(Document document);
	
}
